<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Dirty Proxy User Manual</title>
  </head>
  <body>
    <h1>Dirty Proxy User Manual</h1>
    <h2>What is Dirty Proxy?</h2>
    <p>
      Dirty proxy is a network proxy and cache application implemented in Java. It was created to solve a
      network gap I had when I was developing an application and had to access a slow server. I simply 
      pointed my application to this local server and ponted this server to the remote application.
    </p>
    <h2>Why it is called Dirty Proxy?</h2>
    <p>
      It was called "QDProxy", for "Quick and Dirty Proxy". After I spent a lot of time on it, it became 
      only a dirty proxy.
    </p>
    <h2>How to use it?</h2>
    <p>
      Simply configure the intermediares you want to run (placing files at /deploy directory) and run 
      /bin/run.bat. It will start all intermediares and a command-line tool. Type 'help' to see all
      available commands.
    </p>
    <h2>How to configure?</h2>
    <p>
      On /deploy directory there is a sample configuration file. You can place .xml and .jar files on this
      directory. If you place an XML file you will can only define protocols for the existing protocols
      (A quick and dirty implementation of HTTP and an implementation of XML-over-sockets, like SOAP).
      If you want to use your own protocol implementation, you must create a class that implements the
      dproxy.server.net.protocol.Protocol, create a deployment descriptor named dproxy-config.xml, 
      place this class and this XML in a JAR file and put this file on "deploy" directory. Please refer
      to the javadocs for information on how to implement this interface.
    </p>
    <p>
      The deployment descriptor must define Protocol instances to be used, and intermediares that will
      use these protocols. Two types of cache databases can be used: persistent or in-memory. Persistent
      will use Apache Derby to store data, and in-memory will cache data on memory. If you restart the 
      server, all data is lost.
    </p>
  </body>
</html>